#ifndef __HASHMAP_H_
#define __HASHMAP_H_

#include<string>

class HashMap//键值对
{
public:
    using ElementType=int;
    HashMap(const int &size);
    void Insert(const std::string &key,const ElementType & value);
    void Remove(const std::string &key);
    ElementType* GetByKey(const std::string key);
    ElementType& operator[](const std::string& key);
    
    
    void show();
    void showByGroup();


private:
    struct Node //结点
    {
    Node(const std::string key,const ElementType &value):key(key),value(value),next(nullptr){}
    std::string key;//键
    ElementType value;//值
    Node *next;//指向下一个节点的指针
    };
    Node* *array;//数组指针
    const int size;//数组大小
    //哈希函数
    int Hash(const std::string& key);
};







#endif